// 257. 二叉树的所有路径


/**
 * 发现这种关于叶子节点的题总是出错
 * 老是直接判断空就返回
 * 应该判断root的左右为空进行终止 
 */


/**
 * Definition for a binary tree node.
 * function TreeNode(val) {
 *     this.val = val;
 *     this.left = this.right = null;
 * }
 */
/**
 * @param {TreeNode} root
 * @return {string[]}
 */
var binaryTreePaths = function(root) {
    let ans = []

    /**
     * 
     * @param {TreeNode} root 
     * @param {string} p 
     */
    function preOrder(root,p){
        if(root===null){
            return
        }
        if(root.left===null&&root.right===null){
            p+=root.val
            ans.push(p)
            return
        }
        p+=root.val
        p+='->'
        preOrder(root.left,p)
        preOrder(root.right,p)
    }
    preOrder(root,'')
    return ans
};